Don't touch twice von Rainer Kappler (Masterware Entertainment)
fuer Commodore VC-20 Grundversion

https://www.facebook.com/rainer.kappler.5

Januar 2020

------------------------------------------------------------------------------------------------------------------------------------------


Programm laden mit WinVice (VC-20 Emulator xvic):

Einstellungen -> VIC20-Einstellungen -> Keine Speichererweiterung

Datei -> Disk Image einlegen -> Drive 8 -> don't_touch_twice.d64

Tippe LOAD DON'T TOUCH,8 ein und Return druecken.

Wenn das Programm geladen wurde, "RUN" eintippen und Return druecken.


Spielbeschreibung:

Das Spielfeld besteht aus einem Raster, auf dem du zwanzig rote Muenzen einsammeln musst. Dabei darfst du aber weder die Spur beruehren, die du hinterlaesst,
weil du jedes Feld nur einmal betreten darfst, noch die blauen Hindernisse, die sich bereits auf dem Spielfeld befinden. Das Spiel endet
ebenfalls, wenn du das Spielfeld verlaesst. Hast du alle Muenzen eingesammelt, beginnt das Spiel im naechsten Level von vorne.

Steuerung:

W -> oben
A -> links
D -> rechts
X -> unten



Listing:

1 print"{clear}{home}{white}<{cm v}{reverse on}{sh +}{cm b}=C{reverse off}{cm +}<{reverse on}{cm b}{reverse off}qqq{reverse on}{cm b}
{reverse off}qqq@{reverse on}{cm v*7}{reverse off}@{cm c}{reverse on}{cm s}N{cm s*2}{reverse off}{cm c}@":fori=0to31:poke7168+i,peek(7680+i):next
2 fori=0to7:poke7424+i,0:next:a$=" {black}{a*20} ":sc=0:m=7680:c=30720:p=45:g=220:k=0:le=1
3 poke36879,25:poke36878,15:d=0:poke36869,255:print"{clear}{home}{down}":fori=0to19:printa$;:next:print"{home}":fort=0to1:fori=0to19
4 a=int(rnd(1)*418):ifpeek(m+a+48)<>1then4
5 pokem+c+a+48,6-t*4:pokem+a+48,2+t:next:next:pokem+c+p,6:pokem+p,0:s=36875:ifg<0theng=0
6 a(0)=17:r(0)=-1:a(1)=18:r(1)=1:a(2)=9:r(2)=-22:a(3)=26:r(3)=22:print"{home}{reverse on}{black}{right}le"le;" sc"sc
7 fori=0to3:ifpeek(197)=a(i)thend=r(i):rem don't touch twice (c) 2020 by rainer kappler
8 next:ifpeek(m+p+d)=2orpeek(m+p+d)=32thenprint"{home}{reverse on}{down}{black}"tab(12)"game over":poke198,0:wait198,1:goto1
9 ifpeek(m+p+d)=3thensc=sc+1:k=k+1:pokes,180:ifk=20theng=g-10:k=0:p=45:le=le+1:fort=0to500:next:pokes,0:goto3
10 pokem+p,2:pokem+p+c,4:p=p+d:pokes,0:pokem+p,0:pokem+p+c,6:fort=0tog:next:goto6


Programmbeschreibung:

1. Einlesen der Grafikdaten.
2. Festlegen des Strings fuer das Rasterfeld, loeschen des Scores, Variablen fuer Bildschirm, Farbe, Position, Geschwindigkeit, Anzahl der Muenzen und Level.
3. Bildschirmfarbe weiss und Laustaerke auf 15 setzen. Grafikmodus an. Bildschirm loeschen und Spielfeld zeichnen.
4. Zufallszahl fuer Muenzen und Hindernisse. Ist der Hintergrund nicht frei, dann neue Zahl ermitteln.
5. Muenze oder Hindernis zeichnen. Variable fuer Soundkanal. Ist die Geschwindigkeitvariable kleiner als null, dann auf null setzen.
6. Variablen fuer Richtungstasten und entsprechende Richtungen setzen. Level und Score anzeigen.
7. Schleife fuer Tastaturabfrage.
8. Auf Hindernis testen. Wenn ja, dann Spielende.
9. Wenn Muenze eingesammelt, dann Score und Anzahl der gesammelten Muenzen erhoehen. Wenn zwanzig Muenzen eingesammelt, Ton ausgeben, Geschwindigkeit erhoehen,
   Level erhoehen, Warteschleife und zurueck zu Zeile 3.
10. Position des Spielers loeschen und auf neuer Position setzen. Warteschleife und zurueck zu Zeile 6.